package top.jacktgq.itheima.bio.TCP.Demo1;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * 实现TCP服务程序
 * 表示服务器程序的类java.net.ServerSocket
 * 构造方法：
 *    ServerSocket(int port)  传递端口号
 *    很重要的事情：必须要获取客户端的套接字对象Socket
 *    调用Socket accept()方法，同意客户端连接的请求
 */
public class TCPServer {

	public static void main(String[] args) throws IOException{
		ServerSocket server = new ServerSocket(8888);
		//调用服务器套接字对象中的方法accept() 获取客户端套接字对象
		Socket socket = server.accept();
		
		//通过客户端套接字对象Socket方法getInputStream
		InputStream in = socket.getInputStream();
		
		
		//打印结果
		byte[] message = new byte[1024];
		int len = in.read(message);
		String ip = socket.getInetAddress().getHostAddress();
		
		System.out.println(ip + "-" 
		                      + socket.getPort() 
		                      + ":" 
		                      + new String(message,0,len));
		
		//服务器向客户端回数据，字节输出流，通过客户端套接字对象获取字节输出流
		OutputStream out = socket.getOutputStream();
		out.write("你好客户端！".getBytes());
		
		//关闭资源
		socket.close();
	    server.close(); 
	}
}
